import {
	navLinkType
} from '@/common/setting/constVarsHelper.js';

/**
 * 全局混入型
 */
module.exports = {
	beforeCreate() {

	},
	data() {
		return {
			/**
			 * 页面加载
			 */
			pageLoading: true
		}
	},
	methods: {
		/**
		 * //常用链接操作
		 */

		//返回首页
		goHome() {
			uni.switchTab({
				url: '/pages/index/default/default'
			});
		},
		//返回上一页
		goNavigateBack() {
			uni.navigateBack();
		},

		//路由跳转
		goRoute(url) {
			// 无参数
			this.$u.route(url);
		},
		goRoute(url, params) {
			// 带参数，传递的对象形式的参数，如{name: 'lisa', age: 18}
			this.$u.route(url, params);
		},
		//查看所在坐标地图位置
		goShopMap() {
			var reshipCoordinate = this.$store.state.config.reshipCoordinate;
			if (reshipCoordinate && reshipCoordinate.indexOf(",") != -1) {
				var arr = reshipCoordinate.split(',')
				this.$u.route('/pages/map/map', {
					id: 1,
					latitude: arr[0],
					longitude: arr[1],
				});
			}
		},
		//查看所在坐标地图位置
		goMapDetails(id, latitude, longitude) {
			this.$u.route('/pages/map/map', {
				id: id,
				latitude: latitude,
				longitude: longitude,
			});
		},
		goUserCenter() {
			this.$u.route({
				url: '/pages/index/member/member',
				type: 'switchTab'
			});
		},
		goSearch() {
			this.$u.route({
				url: '/pages/search/search',
			});
		},
		// 返回上一页
		toBackBtn() {
			var pages = getCurrentPages();
			if (pages.length > 1) {
				uni.navigateBack({
					delta: 1
				});
			} else {
				this.$u.route({
					type: 'switchTab',
					url: '/pages/index/default/default'
				});
			}
		},
		//返回操作处理
		toOnBackPress(options) {
			if (options.from === 'navigateBack') {
				return false
			}
			let loginPages = ['/pages/index/cart/cart', '/pages/index/member/member']
			let backPage = this.$store.state.redirectPage
			if (loginPages.indexOf(backPage) > -1) {
				this.$store.commit({
					type: 'redirect',
					page: ''
				})
				this.$u.route({
					type: 'switchTab',
					url: '/pages/index/default/default'
				})
				return true
			}
		},
		//登录成功统一跳转处理
		toLoginSuccessHandleBack() {
			let redirect = this.$store.state.redirectPage
			this.$store.commit({
				type: 'redirect',
				page: ''
			})
			let switchTabs = ['/pages/index/default/default', '/pages/index/member/member']
			if (switchTabs.indexOf(redirect) > -1) {
				this.$u.route({
					type: 'switchTab',
					url: redirect
				})
			} else if (redirect) {
				this.$u.route({
					type: 'switchTab',
					url: redirect
				})
			} else {
				this.$u.route({
					type: 'switchTab',
					url: '/pages/index/default/default'
				})
			}
		},

		// 购物车页面跳转
		redirectCart() {
			this.$u.route({
				type: 'switchTab',
				url: '/pages/index/cart/cart'
			});
		},

		/**
		 * 订单接口信息
		 */

		// 查看订单详情
		goOrderDetail(orderId) {
			this.$u.route('/pages/member/order/detail/detail', {
				orderId: orderId
			});
		},
		// 取消订单

		// 去支付
		goToPay(orderId) {
			this.$u.route('/pages/payment/pay/pay', {
				orderId: orderId,
				type: 1
			});
		},
		// 确认收货

		// 去评价
		toEvaluate(orderId) {
			this.$u.route('/pages/member/order/evaluate/evaluate', {
				orderId: orderId
			});
		},
		// 申请售后

		// 查看物流信息
		goShowExpress(code, no, address = '', mobile = '') {
			let params = encodeURIComponent(
				'code=' + code + '&no=' + no + '&add=' + address + '&mobile=' + mobile
			)
			this.$u.route('/pages/member/order/expressDelivery/expressDelivery', {
				params: params
			});
		},


		/**
		 * 商品接口信息
		 */

		// 查看商品详情
		goGoodsDetail(goodsId) {
			this.$u.route('/pages/goods/goodDetails/goodDetails', {
				id: goodsId
			});
		},
		// 查看商品评论详情
		goGoodComments(goodsId) {
			this.$u.route('/pages/goods/goodComments/goodComments', {
				id: goodsId
			});
		},
		// 跳转商品列表页
		goGoodsList(obj = {}) {
			let url = '/pages/category/list/list'
			if (Object.keys(obj).length) {
				url = url + this.$u.queryParams(obj)
			}
			this.$u.route(url)
		},
		// 秒杀详情
		goSeckillDetail(id) {
			this.$u.route('/pages/activity/seckill/seckillDetails/seckillDetails', {
				id: id
			});
		},
		// 团购详情
		goGroupBuyingDetail(id) {
			this.$u.route('/pages/activity/groupBuying/groupBuyingDetails/groupBuyingDetails', {
				id: id
			});
		},
		//拼团详情页
		goPinTuanDetail(id, teamId) {
			if (teamId) {
				this.$u.route('/pages/activity/pinTuan/pinTuanDetails/pinTuanDetails', {
					id: id,
					teamId: teamId,
				});
			} else {
				this.$u.route('/pages/activity/pinTuan/pinTuanDetails/pinTuanDetails', {
					id: id
				});
			}
		},
		// 查看团购列表
		goGroupPurchase() {
			this.$u.route('/pages/activity/groupBuying/list/list')
		},
		// 查看秒杀列表
		goSeckillList() {
			this.$u.route('/pages/activity/seckill/list/list')
		},
		// 查看拼团列表
		goPinTuanList() {
			this.$u.route('/pages/activity/pinTuan/list/list')
		},


		/**
		 * 文章接口
		 */

		// 查看文章分类
		goArticleClassify(id) {
			this.$u.route('/pages/article/list/list', {
				id: id
			});
		},
		goArticleList() {
			this.$u.route('/pages/article/list/list')
		},
		// 查看文章详情
		goArticleDetail(id) {
			this.$u.route('/pages/article/details/details', {
				idType: 1,
				id: id
			});
		},

		/**
		 * 公告接口
		 */

		// 查看公告列表
		goNoticeList() {
			this.$u.route('/pages/notice/list/list')
		},
		// 查看公告详情
		goNoticeDetail(id) {
			this.$u.route('/pages/notice/details/details', {
				id: id
			});
		},

		// 前往用户协议
		goUserAgreementPage() {
			var id = this.$store.state.config.userAgreementId;
			this.$u.route('/pages/article/details/details', {
				idType: 1,
				id: id
			});
		},
		// 前往隐私协议
		goUserPrivacyPolicy() {
			var id = this.$store.state.config.privacyPolicyId;
			this.$u.route('/pages/article/details/details', {
				idType: 1,
				id: id
			});
		},
		// 关于我们
		goAboutUs() {
			let id = this.$store.state.config.aboutArticleId;
			this.$u.route('/pages/article/details/details', {
				idType: 1,
				id: id
			});
		},

		/**
		 * 接龙接口信息
		 */

		// 查看接龙详情
		goSolitaireDetail(id) {
			this.$u.route('/pages/activity/solitaire/solitaireDetails/solitaireDetails', {
				id: id
			});
		},
		// 查看服务列表
		goSolitaireList() {
			this.$u.route('/pages/activity/solitaire/list/list')
		},

		//服务接口信息
		goServicesDetail(serviceId) {
			this.$u.route('/pages/serviceGoods/details/details', {
				id: serviceId
			});
		},
		// 查看服务列表
		goServicesList() {
			this.$u.route('/pages/serviceGoods/index/index')
		},
		// 查看个人详情
		goServicesUserDetail(serviceId) {
			this.$u.route('/pages/member/serviceOrder/details/details', {
				id: serviceId
			});
		},


		/**
		 * 广告相关
		 */

		// 广告点击查看详情
		showSliderInfo(type, val) {
			if (!val) {
				return;
			}
			if (type == navLinkType.urlLink) {
				if (val.indexOf('http') != -1) {
					// #ifdef APP-PLUS || APP-PLUS-NVUE || MP
					this.$u.route('/pages/webview/webview', {
						src: val
					});
					// #endif
				} else {
					// #ifdef APP-PLUS || APP-PLUS-NVUE || MP
					if (val == '/pages/index/default/default' || val == '/pages/category/index/index' || val ==
						'/pages/index/cart/cart' || val == '/pages/index/member/member') {
						this.$u.route({
							type: 'switchTab',
							url: val
						});
						return;
					} else if (val.indexOf('/pages/coupon/coupon?id=') > -1) {
						var id = val.replace('/pages/coupon/coupon?id=', "");
						this.receiveCoupon(id)
					} else {
						this.$u.route(val);
						return;
					}
					// #endif
				}
			} else if (type == navLinkType.shop) {
				// 商品详情
				this.$u.route('/pages/goods/goodDetails/goodDetails', {
					id: val
				});
			} else if (type == navLinkType.article) {
				// 文章详情
				this.$u.route('/pages/article/details/details', {
					idType: 1,
					id: val
				});
			} else if (type == navLinkType.articleCategory) {
				// 文章列表
				this.$u.route('/pages/article/list/list')
			} else if (type == navLinkType.intelligentForms) {
				//自定义表单
				this.$u.route('/pages/form/details/details', {
					id: val
				});
			} else {
				this.$u.route(val);
			}
		},
		// 用户领取优惠券
		receiveCoupon(couponId) {
			uni.showLoading({
				title: '加载中',
				mask: true
			});
			let _this = this;
			let coreshopdata = {
				id: couponId
			}
			this.$u.api.getCoupon(coreshopdata).then(res => {
				if (res.status) {
					uni.hideLoading();
					_this.$refs.uToast.show({
						message: res.msg,
						type: 'success',
						back: false
					})
				} else {
					uni.hideLoading();
					_this.$u.toast(res.msg)
				}
			})
		},


		/**
		 * 工具函数
		 */

		doCopyData(data) {
			var _this = this;
			uni.setClipboardData({
				data: data,
				success: function() {
					_this.$u.toast('复制成功')
				}
			});
		},
		doPhoneCall() {
			var phome = this.$store.state.config.shopMobile || 0;
			if (phome != 0) {
				uni.makePhoneCall({
					phoneNumber: phome
				});
			}
		},
		goBack() {
			//处理兼容，如果没有上一级界面则返回首页
			const pages = getCurrentPages();
			if (pages.length === 2) {
				uni.navigateBack({
					delta: 1
				});
			} else if (pages.length === 1) {
				uni.switchTab({
					url: '/pages/index/default/default',
				})
			} else {
				uni.navigateBack({
					delta: 1
				});
			}
		},

	}
}